// 忘记进位, 就是异或操作, 想要让自己分最多的积木, 且要异或平均, 异或如果数字相同, 异或的结果为0
// 如果可以平分, 那么异或的结果就是0, 由于异或是一个无关乎顺序的符号, 所以最大值 ^ 最小值依然是0
const readline = require("readline");
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
let n;
let initArr = [];
rl.on("line", (line)=>{
    if(n === undefined) {
        n = Number(line.trim())
    } else {
        initArr = line.trim().split(" ").map(Number)
        getResult(n, initArr)
        //clear
        n = undefined
        initArr.length = 0
    }

})

function  getResult(n, initArr){
    initArr.sort((a, b) => b - a)
    let total = 0;
    let errorTotal = 0;
    for (const num of initArr) {
        total += num;
        errorTotal = errorTotal ^ num;
    }
    if(errorTotal === 0) {
        console.log(total - initArr.at(-1))
    } else {
        console.log("NO")
    }
}